Channel encoding is used in communication systems to improve data transmission reliability, so as to ensure communication quality. A polar code, proposed by Professor Arikan of Turkish, is the first code that are theoretically proven to be able to achieve the Shannon capacity and having low encoding and decoding complexity. The polar code is a linear block code. A encoding matrix of the polar code is GN, which is an N×N matrix. An encoding process for generating a polar code x1N is x1N=u1NGN, where u1N=(u1, u2, . . . , uN) is a binary row vector having a length is N (N is also called a mother code length), and GN=F2⊕(log2(N)). F2⊕(log2(N)) is a Kronecker product of log2N matrices F2 and the matrix F2 is:
      F    2    =            [                                    1                                0                                                1                                1                              ]        .  
In the encoding process of the polar code, some bits in the row vector u1N are used to carry information and these bits are referred to as information bits. An index set of the bits is represented as A. The other bits are set to a fixed value that is pre-agreed upon between a transmitting end and a receiving end of the polar code, and these bits are referred to as fixed bits or frozen bits. An index set of these bits is represented by Ac, which is a complementary set of A. The polar encoding process, of the polar code is equivalent to x1N=uAGN(A)⊕uAcGN(AC). Herein GN(A) is a submatrix formed by rows in the GN that correspond to indexes in the set A, and GN (AC) is a submatrix formed by rows in the GN that correspond to indexes in the set AC. uA is an information bit set of the u1N, and the number of the information bits is K; and uAc is a frozen bit set of the u1N, the number of frozen bits is (N−K), and the frozen bits are known bits. Value of the frozen bits is normally set to 0, but the value of the frozen bits may be randomly set, provided that the transmitting end and the receiving end of the polar code have pre-agreed on the value of the frozen bits. When the frozen bits are set to 0, a polar code encoding output may be simplified as follows: x1N=uAGN (A), in which GN (A) is a K×N matrix.
A process of constructing polar code is a process of selecting the set A, and the selection of the set A determines performance of the polar code. The process of constructing polar code is usually as follows: determining, based on a mother code length N, that a total of N polarized channels, where each of the Npolarized channels respectively correspond to one row in an encoding matrix, respectively; calculating a reliability of each of the polarized channels; and forming the information bit index set A using indexes of first K polarized channels with relatively high reliability, and forming the frozen bit index set Ac using indexes of the remaining (N−K) polarized channels. The set A determines bit positions of the information bits in x1N, and the set Ac determines bit position of the frozen bits in x1N.
It can be learned from the encoding matrix that a code length of an original polar code (mother code) is an integral power of 2. In practical applications, however, length of a polar code need to be set to any code length, and this is achieved by a process called rate matching.